﻿Public Class CLSProdutos

#Region "Atributos"
    Dim sql As String
    Dim objbanco As New CLSBanco
    Dim M_Pro_ID As Long
    Dim M_Pro_Nom As String
    Dim M_Pro_VU As Single
    Dim M_Pro_Qtd As Integer
    Dim LINHA As Integer
    Dim OBJDTLOCAL As New DataTable
#End Region
#Region "Gets e Seteres"

    Public Property ID() As Long
        Get
            Return M_Pro_ID
        End Get
        Set(ByVal value As Long)
            M_Pro_ID = value
        End Set
    End Property

    Public Property NomeProduto() As String
        Get
            Return M_Pro_Nom
        End Get
        Set(ByVal value As String)
            M_Pro_Nom = value
        End Set
    End Property



    Public Property valorUnitario() As Double
        Get
            Return M_Pro_VU
        End Get
        Set(ByVal value As Double)
            M_Pro_VU = value
        End Set
    End Property

    Public Property Quantidade() As Integer
        Get
            Return M_Pro_Qtd
        End Get
        Set(ByVal value As Integer)
            M_Pro_Qtd = value
        End Set
    End Property

#End Region
#Region "Metodo Localizar Por Codigo Duplicado"
    Public Function LocalizarPorCodigoDuplicado(ByVal codigo As Long) As Boolean
        sql = "select * from Produto where Pro_ID =" & codigo
        Dim objda As New OleDb.OleDbDataAdapter(sql, objbanco.objcon)
        Dim objds As New DataSet
        objda.Fill(objds)

        If objds.Tables(0).Rows.Count > 0 Then
            Return True
        End If

    End Function
#End Region
#Region "Método Gravar"

    Public Sub Gravar(ByVal novo As Boolean)
        Try
            If novo Then
                sql = "insert into Produto " & _
                "(Pro_ID" & _
                  ",Pro_Nom" & _
                  ",Pro_Qtd" & _
                  ",Pro_VU" & _
                  ") values " & _
                  "(" & M_Pro_ID & _
                  ",'" & M_Pro_Nom & "'" & _
                  "," & M_Pro_Qtd & _
                  "," & M_Pro_VU & _
                  ")"
                objbanco.executar_comando(sql)
            Else
                sql = "update Produto set" & _
                " Pro_Nom= '" & M_Pro_Nom & "'" & _
                ",Pro_Qtd= " & M_Pro_VU & _
                ",Pro_VU= " & M_Pro_VU & _
                " where Pro_ID= " & M_Pro_ID
                objbanco.executar_comando(sql)
            End If
        Catch ex As Exception
            MsgBox("Ocorreu o erro: " & ex.Message, MsgBoxStyle.Critical)
            objbanco.fechar_banco()
        End Try


    End Sub
#End Region
#Region "Método Excluir"

    Public Function excluir(ByVal meucliente As Integer) As Boolean
        sql = "delete from Produto where Pro_ID=" & meucliente
        objbanco.executar_comando(sql)
        Return True
    End Function

#End Region
#Region "Método Localizar por Código"
    Public Function LocalizarPorID(ByVal digiteID As Integer) As DataTable
        sql = "select * from Produto where Pro_ID = " & digiteID
        Dim objda As New OleDb.OleDbDataAdapter(sql, objbanco.objcon)
        Dim objds As New DataSet
        objda.Fill(objds)
        Return objds.Tables(0)
    End Function
    Public Function Localizarnome(ByVal campo As String) As DataTable
        sql = "select * from Produto where Pro_Nom like '" & campo & "%'"
        Dim objda As New OleDb.OleDbDataAdapter(sql, objbanco.objcon)
        Dim objds As New DataSet
        objda.Fill(objds)
        Return objds.Tables(0)
    End Function
#End Region
#Region "Método ir para o próximo"
    Public Sub Ir_para_proximo()
        OBJDTLOCAL = objbanco.Navegar("Produto")
        LINHA = LINHA + 1
        If LINHA > OBJDTLOCAL.Rows.Count - 1 Then
            LINHA = OBJDTLOCAL.Rows.Count - 1
        End If
        Call MOSTRAR_DADOS_NA_CLASSE()
    End Sub
#End Region
#Region "Método ir para o ultimo"
    Public Sub Ir_para_ultimo()
        OBJDTLOCAL = objbanco.Navegar("Produto")
        LINHA = OBJDTLOCAL.Rows.Count - 1
        Call MOSTRAR_DADOS_NA_CLASSE()
    End Sub
#End Region
#Region "Método ir para o primeiro"
    Public Sub Ir_para_primeiro()
        OBJDTLOCAL = objbanco.Navegar("Produto")
        LINHA = 0
        Call MOSTRAR_DADOS_NA_CLASSE()
    End Sub
#End Region
#Region "Método ir para o anterior"
    Public Sub Ir_para_anterior()
        OBJDTLOCAL = objbanco.Navegar("Produto")
        LINHA = LINHA - 1
        If LINHA < 0 Then
            LINHA = 0
        End If
        Call MOSTRAR_DADOS_NA_CLASSE()
    End Sub
#End Region
#Region "método mostrar dados na classe"
    Public Sub MOSTRAR_DADOS_NA_CLASSE()
        ID = OBJDTLOCAL.Rows(LINHA).Item(0)
        NomeProduto = OBJDTLOCAL.Rows(LINHA).Item(1)
        valorUnitario = OBJDTLOCAL.Rows(LINHA).Item(2)
        Quantidade = OBJDTLOCAL.Rows(LINHA).Item(3)
    End Sub
#End Region
#Region "método localizar codigo"

    Public Function LocalizarCodigo(ByVal codigo As Long) As DataTable
        sql = "select * from produto where Pro_ID = " & codigo
        Dim objda As New OleDb.OleDbDataAdapter(sql, objbanco.objcon)
        Dim objds As New DataSet
        objds.Tables.Clear()
        objda.Fill(objds)
        Return objds.Tables(0)
    End Function
#End Region

#Region "método mostrar Produtos da Cesta"
    Public Function mostrarProdutosDaCesta(ByVal conteudo As Integer) As DataTable
        sql = "SELECT  PRODUTO.PRO_ID, PRODUTO.PRO_Nom,  CestaProdutos.CP_qtd,Ces_VT from  Produto,Cestas,CestaProdutos where produto.Pro_id = CestaProdutos.CP_idPro and Cestas.Ces_idCesta = " & conteudo
        Dim objda As New OleDb.OleDbDataAdapter(sql, objbanco.objcon)
        Dim objds As New DataSet
        objds.Tables.Clear()
        objda.Fill(objds)
        Return objds.Tables(0)
    End Function
#End Region


End Class
